﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Sisocana.Core.Models;

namespace Sisocana.Core.Interfaces
{
    public interface ISiteService : IService<SiteModel>
    {
        #region AA

        List<AffectedAreaMarker> getAreasAfectadas(int idSitio);

        string agregarAreasAfectadas(int idSitio, IEnumerable<AffectedAreaMarker> areasNuevas);

        string eliminarAreasAfectadas(int idSitio, IEnumerable<AffectedAreaMarker> areasEliminadas);

        string actualizarAreasAfectadas(int idSitio, IEnumerable<AffectedAreaMarker> areasModificadas);

        #endregion

        int createSite(SiteModel sitio, String[] selectedUsers);
        void saveExistingSite(bool isGeneralAdmin, SiteModel sitioView, String[] selectedUsers);
        int saveConfVisual(SiteModel sitioView);
        SiteModel Get(int id);

        int setEstado(string estado, int idSitio);
        string getEstado(int idSitio);

        string getMasterPath(int id);
        string getCssPath(int id);

        int changeState(int id, string state);

        /*Usar esto para completar el mapeo de las propiedades que son imposible mapear con el 
         * mapper , agregar aca los "mapeadores" manuales*/ 
        SiteModel mapperCompleter(SiteModel sit);

        IList<Models.SiteModel> getAllVUser(string user);
        
    }
}
